package fr.ifsic.film.client.ui;

import com.google.gwt.user.client.rpc.AsyncCallback;

import fr.ifsic.film.client.FilmProject;
import fr.ifsic.film.client.dto.ActeurDTO;

public class ListeActeurs extends ListeType {

	ActeurDTO[] adto;

	public ListeActeurs() {
		super("Liste des acteurs");
	}

	@Override
	void effacer() {
		FilmProject.greetingService.deleteA(
				adto[listBox.getSelectedIndex()].getP(),
				new AsyncCallback<Void>() {
					@Override
					public void onFailure(Throwable caught) {
					}

					@Override
					public void onSuccess(Void result) {
					}
				});
		FilmProject.changePage(FilmProject.accueil);
	}

	@Override
	void details() {

		ActeurDTO a = adto[listBox.getSelectedIndex()];
		if (a != null) {
			FilmProject.changePage(FilmProject.da);
			((DetailsActeur) FilmProject.da).labelShowNom.setText(a
					.getPersonne().getNom());
			((DetailsActeur) FilmProject.da).labelShowPrenom.setText(a
					.getPersonne().getPrenom());
			((DetailsActeur) FilmProject.da).labelShowId.setText(a
					.getPersonne().getP() + "");
			((DetailsActeur) FilmProject.da).labelShowSexe.setText(a
					.getPersonne().getSexe());
			((DetailsActeur) FilmProject.da).labelShowNbFilm.setText(a
					.getNbFilm());
		}

	}

	@Override
	void refresh() {
		FilmProject.greetingService
				.listActeur(new AsyncCallback<ActeurDTO[]>() {
					@Override
					public void onFailure(Throwable caught) {
					}

					@Override
					public void onSuccess(ActeurDTO[] result) {
						while (listBox.getItemCount() > 0)
							listBox.removeItem(0);

						adto = result;
						for (ActeurDTO a : result) {
							listBox.addItem(a.getPersonne().getNom() + " "
									+ a.getPersonne().getPrenom());
						}
					}
				});
	}
}
